package com.lqh.studyproject.java8lambda;

import java.util.Arrays;
import java.util.Comparator;

/**
 * @ClassName LambdaTest
 * @Description studyproject
 * @Author bgy-lqh
 * @Date 2020/6/19 15:21
 * @Version Lambda表达式学习
 **/
public class LambdaTest {

    public static void main(String[] args) {
//        // 1.1使用匿名内部类
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("hello word 1");
//            }
//        }).start();
//
//
//        // 1.2使用 lambda 获得Runnable接口对象
//        new Thread(()-> System.out.println("hello word 2")).start();
//
//        // 2.1使用匿名内部类
//        Runnable runnable=new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("hello word 3");
//            }
//        };
//
//        // 2.2使用 lambda直接获得接口对象
//        Runnable runnable1=()-> System.out.println("hello word 4");
//
//        runnable.run();
//        runnable1.run();
//
//
        String[] players = {"zhansgan", "lisi", "wangwu", "zhaoliu",  "wangmazi"};
//
//        // 1.1 使用匿名内部类根据 surname 排序 players
//        Arrays.sort(players, new Comparator<String>() {
//            @Override
//            public int compare(String s1, String s2) {
//                return (s1.compareTo(s2));
//            }
//        });
//
//
//        // 1.2 使用 lambda 排序,根据 surname
//        Arrays.sort(players,(String s1,String s2)->s1.compareTo(s2));
//        Arrays.asList(players).forEach(k-> System.out.println(k));


        // 1.1 使用匿名内部类根据 surname length 排序 players
//        Arrays.sort(players, new Comparator<String>() {
//            @Override
//            public int compare(String o1, String o2) {
//                return o1.length()-o2.length();
//            }
//        });
//        Arrays.asList(players).forEach(k-> System.out.println(k));

        Arrays.sort(players,(String o1,String o2) ->o1.length()-o2.length());
        Arrays.asList(players).forEach(k-> System.out.println(k));

    }
}